package com.ws.wrapper;

import org.junit.Test;

import java.awt.geom.FlatteningPathIterator;

/*
包装类的使用：
1.Java提供了八种基本数据类型对应的包装类，使得基本数据类型的变量具有类的特征
2.掌握的：基本数据类型、包装类、String 三者之间的相互转换
 */
public class WrapperTest {

    //String类型 --> 基本数据类型、包装类
    @Test
    public void test5() {
        String str1 = "234";
        Integer i1 = Integer.valueOf(str1);
        System.out.println(i1);

        int i2 = Integer.parseInt(str1);
        System.out.println(i2);
    }

    //基本数据类型、包装类 ---> String类型
    @Test
    public void test4() {
        int num1 = 10;
        String str1 = String.valueOf(num1);
        String str2 = num1 + "";

    }

    /*
    JDK 5.0 新特性：自动装箱和自动拆箱
     */
    @Test
    public void test3() {
        int num = 1;
        method(num);

        //自动装箱：基本数据类型 --> 包装类
        int num2 = 10;
        Integer integer = num2;

        //自动拆箱：包装类 --> 基本数据类型
        Integer integer1 = new Integer(20);
        int num3 = integer1;
    }

    public void method(Object obj) {
        System.out.println(obj);
    }

    //包装类 --> 基本数据类型
    @Test
    public void test2() {
        Integer num1 = 3;

        int i1 = num1.intValue();
        System.out.println(i1);

        int i = Integer.valueOf(num1);
        System.out.println(i);
    }


    //基本数据类型 --> 包装类
    @Test
    public void test1() {
        int num1 = 10;
        Integer integer = num1;
        System.out.println(integer);

        Float f1 = 23.4f;
        System.out.println(f1);

        Boolean b1 = true;
        Boolean b2 = new Boolean("True");
        System.out.println(b2);//true
        Boolean b3 = new Boolean("true34");
        System.out.println(b3);//false

        Order order = new Order();
        System.out.println(order.isMale);//false
        System.out.println(order.isFemale);//null
    }
}

class Order {
    boolean isMale;
    Boolean isFemale;
}
